/**
 * 控件基类
 */

import { Control } from 'ol/control';

/**
 * 控件位置类型
 */
export type ControlPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';

/**
 * 控件基类
 */
export class BaseControl {
  /** OpenLayers 控件实例 */
  protected control: Control;
  /** 控件位置 */
  protected position?: ControlPosition;

  /**
   * 构造函数
   * @param control OpenLayers 控件实例
   * @param position 控件位置
   */
  constructor(control: Control, position?: ControlPosition) {
    this.control = control;
    this.position = position;
  }

  /**
   * 获取 OpenLayers 控件实例
   * @returns 控件实例
   */
  getControl(): Control {
    return this.control;
  }

  /**
   * 设置控件位置
   * @param position 位置
   */
  setPosition(position: ControlPosition): void {
    this.position = position;
    // 注意：OpenLayers 控件位置需要在添加到地图时设置
  }
}

